package cn.lingyangwl.agile.msg.push.api.model.rqrs;

import cn.lingyangwl.agile.model.constants.ValidationCons;
import cn.lingyangwl.agile.msg.push.api.model.content.TplField;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotEmpty;
import java.util.Map;

/**
 * 站内消息推送的请求
 * @author shenguangyang
 */
@Data
@Accessors(chain = true)
public class SitePushReq {

    /**
     * 推送的消息编码
     */
    private String noticeCode;

    /**
     * 推送的登录用户id
     * 用户登录id, 为 * 时, 发送给某个租户某个用户的在线账号
     */
    @NotEmpty(message = ValidationCons.NOT_EMPTY)
    private String loginId;

    /**
     * 推送的用户id
     * 用户ID, 为 * 时, 会忽略loginId, 发送某个租户下的所有在线用户
     */
    @NotEmpty(message = ValidationCons.NOT_EMPTY)
    private String userId;

    /**
     * 自定义关联业务类型
     */
    private String bizType;

    /**
     * 推送内容
     */
    private String content;
    /**
     * 标题
     */
    private String title;
    /**
     * 点击页面跳转的地址
     */
    private String pageUrl;
    /**
     * 变量数据, key: 变量key
     */
    private Map<String, TplField> varData;

    /**
     * 媒体类型 MaterialTypeEnum
     */
    private String mediaType;

    /**
     * 媒体地址
     */
    private String mediaUrl;
}
